/*
** xfconf_channel.h
** 
*/

#ifndef   	XFCONF_CHANNEL_H_
# define   	XFCONF_CHANNEL_H_


#include <glib-object.h>


#define XFCONF_TYPE_CHANNEL             (xfconf_channel_get_type())
#define XFCONF_CHANNEL(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj), XFCONF_TYPE_CHANNEL, XfconfChannel))
#define XFCONF_IS_CHANNEL(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj), XFCONF_TYPE_CHANNEL))
#define XFCONF_CHANNEL_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass), XFCONF_TYPE_CHANNEL, XfconfChannelClass))
#define XFCONF_IS_CHANNEL_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass), XFCONF_TYPE_CHANNEL))


G_BEGIN_DECLS

typedef struct _XfconfChannel         XfconfChannel;
typedef struct _XfconfChannelClass   XfconfChannelClass;
typedef struct _XfconfChannelPrivate XfconfChannelPrivate;


GType xfconf_channel_get_type(void) G_GNUC_CONST;

struct _XfconfChannel
{
    GObject parent;
    /*< private >*/    
    XfconfChannelPrivate *priv;
};

struct _XfconfChannelClass
{
    GObjectClass parent;
    void (*property_changed)(XfconfChannel *channel,
                             const gchar *property,
                             const GValue *value);
};

XfconfChannel*      xfconf_channel_new_with_property_base(const gchar *channel_name,
							  const gchar *property_base);


gulong              xfconf_g_property_bind              (XfconfChannel *channel,
                                                         const gchar *xfconf_property,
                                                         GType xfconf_property_type,
                                                         gpointer object,
                                                         const gchar *object_property);



#define xfconf_init(...) do{}while(0)

G_END_DECLS

#endif 	    /* !XFCONF_CHANNEL_H_ */
